package belleza.relativa

import belleza.relativa.security.User

class PerfilPublicoController {
    def transient springSecurityService

    def perfilPublicoUsuario() {
        def persona = Persona.findById(params.id)
        def user = springSecurityService.getCurrentUser() as User
        def logPerson = user?.getPersona()
        if (!persona) {
            redirect(controller: 'login', action: 'index')
            return
        }
        [persona: persona, logPerson: logPerson]
    }

    def denunciar() {
        flash.message = "Persona denunciada"
        redirect(controller: 'login', action: 'index')
    }

    def enviarSolicitud() {
        def persona = Persona.findById(params.personaId)
        def user = springSecurityService.getCurrentUser() as User
        def userPersona = user?.getPersona()
        if (userPersona && persona) {
            def solicitud = Solicitud.findBySolicitadoAndSolicitante(persona, userPersona)
            if (solicitud) {
                solicitud.setVista(false)
                solicitud.save(flush: true, failOnError: true)
            } else {
                solicitud = new Solicitud(solicitante: userPersona, solicitado: persona)
                solicitud.setAceptada(false)
                solicitud.setVista(false)
                solicitud.setFecha(new Date())
                solicitud.save(flush: true)
                persona.addToSolicitudesRecibidas(solicitud)
                persona.save(flush: true, failOnError: true)
                userPersona.addToSolicitudesRealizadas(solicitud)
                userPersona.save(flush: true, failOnError: true)
            }
        }
        redirect(controller: 'login', action: 'index')
    }

    def puntuar() {
        def persona = Persona.findById(params.personaId)
        if (persona) {
            persona.puntuar(params.puntaje)
        }
        redirect(controller: 'login', action: 'index')
    }

    def enviarMensaje() {
        redirect(controller: 'conversacion', action: 'enviarMensaje', params: params)
    }
}
